package ar.com.fiuba.ElectronicCircuitAnalyst.domain.impl.functions.expressions;

import java.util.List;

import ar.com.fiuba.ElectronicCircuitAnalyst.domain.impl.functions.modifiers.DummyModifer;
import ar.com.fiuba.ElectronicCircuitAnalyst.domain.impl.functions.modifiers.Modifier;

/**
 * Abstract class that represents an expression to be evaluated.
 * 
 */
public abstract class GenericExpression {

	protected String expressionName;

	protected Modifier modifier = new DummyModifer();

	/**
	 * Method to perform the evaluatiun of the expression over the inputs
	 * values.
	 * 
	 * @param inputs
	 *            boolean values for each variable.
	 * @return true if the condition evaluated is checked, otherwise false.
	 */
	public abstract Boolean evaluate(List<Boolean> inputs);

	public String getName() {
		return expressionName;
	}

	public void setModifier(Modifier modifier) {
		this.modifier = modifier;
	}

}
